﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Word=Microsoft.Office.Interop.Word;

namespace MyWordAddIn
{
    /// <summary>
    ///  //doc.Paragraphs 就是段落集合 其中包括了一个一个的段落(Paragraph) 只要有一个回车换行就算是一个段落了b
    // 一个回车换行符也是要占一个位置的 比如一个段落中只有一个回车换行符 起始位置是1 那结束位置就是2
    //Paragraphs 有一些重要的属性 比如Range对象，也有一些方法，如获取段落的样式((Style)item.get_Style()).NameLocal
    //段落Paragraph对象 有get_Style() 和 set_Style()方法
    //段落的Add方法 新增一个段落 会沿用上一个段落的样式的
    //段落的select 方法会选择当前的段落
    /// </summary>
    public class WordParagraph
    {
        Word.Application app;
        public WordParagraph(Word.Application app)
        {
            this.app = app;
        }

        public void LoopParagraph(Message msg)
        {
            Word.Document doc = app.ActiveDocument;

            foreach (Word.Paragraph item in doc.Paragraphs)
            {
                msg.AddStyleMsg(item.Range);
            }
        }

        public void AddParagraph()
        {
            Word.Document doc = app.ActiveDocument;
            doc.Paragraphs.Add();
            doc.Paragraphs.Last.Range.Text = "Hello This is New Add";//段落文字
            doc.Paragraphs.Last.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter;//居中
        }

        public void PrePara(Message msg)
        {
            Word.Document doc = app.ActiveDocument;

            object oIndex = 1;
            Word.Range r = doc.Sections.Application.Selection.Paragraphs.First.Previous(ref oIndex).Range;//选择段落的上一段落
            msg.AddMsg(r);
        }

        public void NextPara(Message msg)
        {
            Word.Document doc = app.ActiveDocument;

            object oIndex = 1;
            Word.Range r = doc.Sections.Application.Selection.Paragraphs.First.Next(ref oIndex).Range;//选择段落的下一段落
            msg.AddMsg(r);
        }
    }
}
